home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Disc to the Future 2
/
Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin
/
MAC
/
MPW_TOOL
/
TOOLS
/
TOOLS_WI
/
PERL
/
OS2
/
CONFIG.H
< prev
next >
Wrap
Text File
|
1992-01-04
|
17KB
|
568 lines
/* config.h
* This file was hand tailored for compiling under MS-DOS and MSC 5.1.
* Diomidis Spinellis, March 1990.
*
* Then it got mangled again for compiling under OS/2 and MSC 6.0.
* Raymond Chen, June 1990.
*/
#define OS2 /**/
/* OS/2 supports some additional things MS-DOS doesn't.
*/
#ifdef OS2
#define PIPE
#define GETPPID
#define HAS_GETPRIORITY
#define HAS_SETPRIORITY
#define KILL
#endif /* OS2 */
/* SUFFIX:
* This symbol, if defined, indicates that the function add_suffix has
* been supplied in a system-dependent .c file. This function is
* recommended for operating systems whose filenaming conventions
* do not permit arbitrary strings as filenames.
*/
#define SUFFIX /**/
/* EUNICE:
* This symbol, if defined, indicates that the program is being compiled
* under the EUNICE package under VMS. The program will need to handle
* things like files that don't go away the first time you unlink them,
* due to version numbering. It will also need to compensate for lack
* of a respectable link() command.
*/
/* VMS:
* This symbol, if defined, indicates that the program is running under
* VMS. It is currently only set in conjunction with the EUNICE symbol.
*/
/*#undef EUNICE /**/
/*#undef VMS /**/
/* BIN:
* This symbol holds the name of the directory in which the user wants
* to put publicly executable images for the package in question. It
* is most often a local directory such as /usr/local/bin.
*/
#define BIN "/usr/local/bin" /**/
/* BYTEORDER:
* This symbol contains an encoding of the order of bytes in a long.
* Usual values (in octal) are 01234, 04321, 02143, 03412...
*/
/* CHECK */
#define BYTEORDER 0x1234 /**/
/* CPPSTDIN:
* This symbol contains the first part of the string which will invoke
* the C preprocessor on the standard input and produce to standard
* output. Typical value of "cc -{" or "/lib/cpp".
*/
/* CPPMINUS:
* This symbol contains the second part of the string which will invoke
* the C preprocessor on the standard input and produce to standard
* output. This symbol will have the value "-" if CPPSTDIN needs a minus
* to specify standard input, otherwise the value is "".
*/
/* TODO */
#define CPPSTDIN "cc -{"
#define CPPMINUS ""
/* HAS_BCMP:
* This symbol, if defined, indicates that the bcmp routine is available
* to compare blocks of memory. If undefined, use memcmp. If that's
* not available, roll your own.
*/
/*#define HAS_BCMP /**/
/* HAS_BCOPY:
* This symbol, if defined, indicates that the bcopy routine is available
* to copy blocks of memory. Otherwise you should probably use memcpy().
*/
/*#define HAS_BCOPY /**/
/* CHARSPRINTF:
* This symbol is defined if this system declares "char *sprintf()" in
* stdio.h. The trend seems to be to declare it as "int sprintf()". It
* is up to the package author to declare sprintf correctly based on the
* symbol.
*/
/*#define CHARSPRINTF /**/
/* HAS_CRYPT:
* This symbol, if defined, indicates that the crypt routine is available
* to encrypt passwords and the like.
*/
/* TODO */
/*#define HAS_CRYPT /**/
/* DOSUID:
* This symbol, if defined, indicates that the C program should
* check the script that it is executing for setuid/setgid bits, and
* attempt to emulate setuid/setgid on systems that have disabled
* setuid #! scripts because the kernel can't do it securely.
* It is up to the package designer to make sure that this emulation
* is done securely. Among other things, it should do an fstat on
* the script it just opened to make sure it really is a setuid/setgid
* script, it should make sure the arguments passed correspond exactly
* to the argument on the #! line, and it should not trust any
* subprocesses to which it must pass the filename rather than the
* file descriptor of the script to be executed.
*/
/*#define DOSUID /**/
/* HAS_DUP2:
* This symbol, if defined, indicates that the dup2 routine is available
* to dup file descriptors. Otherwise you should use dup().
*/
#define HAS_DUP2 /**/
/* HAS_FCHMOD:
* This symbol, if defined, indicates that the fchmod routine is available
* to change mode of opened files. If unavailable, use chmod().
*/
/*#define HAS_FCHMOD /**/
/* HAS_FCHOWN:
* This symbol, if defined, indicates that the fchown routine is available
* to change ownership of opened files. If unavailable, use chown().
*/
/*#define HAS_FCHOWN /**/
/* I_FCNTL:
* This symbol, if defined, indicates to the C program that it should
* include fcntl.h.
*/
/*#define I_FCNTL /**/
/* HAS_FLOCK:
* This symbol, if defined, indicates that the flock() routine is
* available to do file locking.
*/
/*#define HAS_FLOCK /**/
/* HAS_GETGROUPS:
* This symbol, if defined, indicates that the getgroups() routine is
* available to get the list of process groups. If unavailable, multiple
* groups are probably not supported.
*/
/*#define HAS_GETGROUPS /**/
/* HAS_GETHOSTENT:
* This symbol, if defined, indicates that the gethostent() routine is
* available to lookup host names in some data base or other.
*/
/*#define HAS_GETHOSTENT /**/
/* HAS_GETPGRP:
* This symbol, if defined, indicates that the getpgrp() routine is
* available to get the current process group.
*/
/*#define HAS_GETPGRP /**/
/* HAS_GETPRIORITY:
* This symbol, if defined, indicates that the getpriority() routine is
* available to get a process's priority.
*/
/*#define HAS_GETPRIORITY /**/
/* HAS_HTONS:
* This symbol, if defined, indicates that the htons routine (and friends)
* are available to do network order byte swapping.
*/
/* HAS_HTONL:
* This symbol, if defined, indicates that the htonl routine (and friends)
* are available to do network order byte swapping.
*/
/* HAS_NTOHS:
* This symbol, if defined, indicates that the ntohs routine (and friends)
* are available to do network order byte swapping.
*/
/* HAS_NTOHL:
* This symbol, if defined, indicates that the ntohl routine (and friends)
* are available to do network order byte swapping.
*/
/*#define HAS_HTONS /**/
/*#define HAS_HTONL /**/
/*#define HAS_NTOHS /**/
/*#define HAS_NTOHL /**/
/* index:
* This preprocessor symbol is defined, along with rindex, if the system
* uses the strchr and strrchr routines instead.
*/
/* rindex:
* This preprocessor symbol is defined, along with index, if the system
* uses the strchr and strrchr routines instead.
*/
#define index strchr /* cultural */
#define rindex strrchr /* differences? */
/* I_SYSIOCTL:
* This symbol, if defined, indicates that sys/ioctl.h exists and should
* be included.
*/
/*#define I_SYSIOCTL /**/
/* HAS_KILLPG:
* This symbol, if defined, indicates that the killpg routine is available
* to kill process groups. If unavailable, you probably should use kill
* with a negative process number.
*/
/*#define HAS_KILLPG /**/
/* HAS_MEMCMP:
* This symbol, if defined, indicates that the memcmp routine is available
* to compare blocks of memory. If undefined, roll your own.
*/
#define HAS_MEMCMP /**/
/* HAS_MEMCPY:
* This symbol, if defined, indicates that the memcpy routine is available
* to copy blocks of memory. Otherwise you should probably use bcopy().
* If neither is defined, roll your own.
*/
#define HAS_MEMCPY /**/
/* HAS_MKDIR:
* This symbol, if defined, indicates that the mkdir routine is available
* to create directories. Otherwise you should fork off a new process to
* exec /bin/mkdir.
*/
#define HAS_MKDIR /**/
/* HAS_NDBM:
* This symbol, if defined, indicates that ndbm.h exists and should
* be included.
*/
#define HAS_NDBM /**/
/* HAS_ODBM:
* This symbol, if defined, indicates that dbm.h exists and should
* be included.
*/
/*#define HAS_ODBM /**/
/* HAS_READDIR:
* This symbol, if defined, indicates that the readdir routine is available
* from the C library to create directories.
*/
#define HAS_READDIR /**/
/* HAS_RENAME:
* This symbol, if defined, indicates that the rename routine is available
* to rename files. Otherwise you should do the unlink(), link(), unlink()
* trick.
*/
#define HAS_RENAME /**/
/* HAS_RMDIR:
* This symbol, if defined, indicates that the rmdir routine is available
* to remove directories. Otherwise you should fork off a new process to
* exec /bin/rmdir.
*/
#define HAS_RMDIR /**/
/* HAS_SETEGID:
* This symbol, if defined, indicates that the setegid routine is available
* to change the effective gid of the current program.
*/
/*#define HAS_SETEGID /**/
/* HAS_SETEUID:
* This symbol, if defined, indicates that the seteuid routine is available
* to change the effective uid of the current program.
*/
/*#define HAS_SETEUID /**/
/* HAS_SETPGRP:
* This symbol, if defined, indicates that the setpgrp() routine is
* available to set the current process group.
*/
/*#define HAS_SETPGRP /**/
/* HAS_SETPRIORITY:
* This symbol, if defined, indicates that the setpriority() routine is
* available to set a process's priority.
*/
/*#define HAS_SETPRIORITY /**/
/* HAS_SETREGID:
* This symbol, if defined, indicates that the setregid routine is available
* to change the real and effective gid of the current program.
*/
/*#define HAS_SETREGID /**/
/* HAS_SETREUID:
* This symbol, if defined, indicates that the setreuid routine is available
* to change the real and effective uid of the current program.
*/
/*#define HAS_SETREUID /**/
/* HAS_SETRGID:
* This symbol, if defined, indicates that the setrgid routine is available
* to change the real gid of the current program.
*/
/*#define HAS_SETRGID /**/
/* HAS_SETRUID:
* This symbol, if defined, indicates that the setruid routine is available
* to change the real uid of the current program.
*/
/*#define HAS_SETRUID /**/
/* HAS_SOCKET:
* This symbol, if defined, indicates that the BSD socket interface is
* supported.
*/
/* HAS_SOCKETPAIR:
* This symbol, if defined, indicates that the BSD socketpair call is
* supported.
*/
/* OLDSOCKET:
* This symbol, if defined, indicates that the 4.1c BSD socket interface
* is supported instead of the 4.2/4.3 BSD socket interface.
*/
/*#undef HAS_SOCKET /**/
/*#undef HAS_SOCKETPAIR /**/
/*#undef OLDSOCKET /**/
/* STATBLOCKS:
* This symbol is defined if this system has a stat structure declaring
* st_blksize and st_blocks.
*/
/*#define STATBLOCKS /**/
/* STDSTDIO:
* This symbol is defined if this system has a FILE structure declaring
* _ptr and _cnt in stdio.h.
*/
#define STDSTDIO /**/
/* STRUCTCOPY:
* This symbol, if defined, indicates that this C compiler knows how
* to copy structures. If undefined, you'll need to use a block copy
* routine of some sort instead.
*/
#define STRUCTCOPY /**/
/* HAS_SYMLINK:
* This symbol, if defined, indicates that the symlink routine is available
* to create symbolic links.
*/
/*#define HAS_SYMLINK /**/
/* HAS_SYSCALL:
* This symbol, if defined, indicates that the syscall routine is available
* to call arbitrary system calls. If undefined, that's tough.
*/
/*#define HAS_SYSCALL /**/
/* s_tm:
* This symbol is defined if this system declares "struct tm" in
* in <sys/time.h> rather than <time.h>. We can't just say
* -I/usr/include/sys because some systems have both time files, and
* the -I trick gets the wrong one.
*/
/* I_SYS_TIME:
* This symbol is defined if this system has the file <sys/time.h>.
*/
/*
* I_TIME:
* This symbol is defined if time this system has the file <time.h>.
*/
/*#undef s_tm /**/
/*#define I_SYS_TIME /**/
#define I_TIME
/* VARARGS:
* This symbol, if defined, indicates to the C program that it should
* include varargs.h.
*/
#define VARARGS /**/
/* vfork:
* This symbol, if defined, remaps the vfork routine to fork if the
* vfork() routine isn't supported here.
*/
/*#undef vfork fork /**/
/* VOIDSIG:
* This symbol is defined if this system declares "void (*signal())()" in
* signal.h. The old way was to declare it as "int (*signal())()". It
* is up to the package author to declare things correctly based on the
* symbol.
*/
#define VOIDSIG /**/
/* HAS_VPRINTF:
* This symbol, if defined, indicates that the vprintf routine is available
* to printf with a pointer to an argument list. If unavailable, you
* may need to write your own, probably in terms of _doprnt().
*/
/* CHARVSPRINTF:
* This symbol is defined if this system has vsprintf() returning type
* (char*). The trend seems to be to declare it as "int vsprintf()". It
* is up to the package author to declare vsprintf correctly based on the
* symbol.
*/
#define HAS_VPRINTF /**/
/*#undef CHARVSPRINTF /**/
/* GIDTYPE:
* This symbol has a value like gid_t, int, ushort, or whatever type is
* used to declare group ids in the kernel.
*/
/* TODO */
#define GIDTYPE int /**/
/* I_DIRENT:
* This symbol, if defined, indicates to the C program that it should
* include dirent.h.
*/
/* DIRNAMLEN:
* This symbol, if defined, indicates to the C program that the length
* of directory entry names is provided by a d_namlen field. Otherwise
* you need to do strlen() on the d_name field.
*/
/*#undef I_DIRENT /**/
#define DIRNAMLEN /**/
/* I_FCNTL:
* This symbol, if defined, indicates to the C program that it should
* include fcntl.h.
*/
/*#define I_FCNTL /**/
/* I_GRP:
* This symbol, if defined, indicates to the C program that it should
* include grp.h.
*/
/*#define I_GRP /**/
/* I_PWD:
* This symbol, if defined, indicates to the C program that it should
* include pwd.h.
*/
/* PWQUOTA:
* This symbol, if defined, indicates to the C program that struct passwd
* contains pw_quota.
*/
/* PWAGE:
* This symbol, if defined, indicates to the C program that struct passwd
* contains pw_age.
*/
/*#define I_PWD /**/
/*#define PWQUOTA /**/
/*#undef PWAGE /**/
/* I_SYS_DIR:
* This symbol, if defined, indicates to the C program that it should
* include sys/dir.h.
*/
#define I_SYS_DIR /**/
/* I_SYSIOCTL:
* This symbol, if defined, indicates that sys/ioctl.h exists and should
* be included.
*/
/*#define I_SYSIOCTL /**/
/* I_VARARGS:
* This symbol, if defined, indicates to the C program that it should
* include varargs.h.
*/
#define I_VARARGS /**/
/* INTSIZE:
* This symbol contains the size of an int, so that the C preprocessor
* can make decisions based on it.
*/
#define INTSIZE 2 /**/
/* RANDBITS:
* This symbol contains the number of bits of random number the rand()
* function produces. Usual values are 15, 16, and 31.
*/
#define RANDBITS 31 /**/
/* SIG_NAME:
* This symbol contains an list of signal names in order.
*/
#ifdef OS2
#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE",\
/* 0 1 2 3 4 5 6 7 8 */\
"KILL","BUS","SEGV","SYS","PIPE","UALRM","TERM","ALRM","USR2","CLD",\
/* 9 10 11 12 13 14 15 16 17 18 */\
"PWR","USR3","BREAK","ABRT"
/*19 20 21 22 */
#else
#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","URG","STOP","TSTP","CONT","CHLD","TTIN","TTOU","IO","XCPU","XFSZ","VTALRM","PROF","WINCH","USR1","USR2" /**/
#endif /* OS2 */
/* STDCHAR:
* This symbol is defined to be the type of char used in stdio.h.
* It has the values "unsigned char" or "char".
*/
#define STDCHAR char /**/
/* UIDTYPE:
* This symbol has a value like uid_t, int, ushort, or whatever type is
* used to declare user ids in the kernel.
*/
#define UIDTYPE int /**/
/* VOIDFLAGS:
* This symbol indicates how much support of the void type is given by this
* compiler. What various bits mean:
*
* 1 = supports declaration of void
* 2 = supports arrays of pointers to functions returning void
* 4 = supports comparisons between pointers to void functions and
* addresses of void functions
*
* The package designer should define VOIDUSED to indicate the requirements
* of the package. This can be done either by #defining VOIDUSED before
* including config.h, or by defining defvoidused in Myinit.U. If the
* latter approach is taken, only those flags will be tested. If the
* level of void support necessary is not present, defines void to int.
*/
#ifndef VOIDUSED
#define VOIDUSED 7
#endif
#define VOIDFLAGS 7
#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
#define void int /* is void to be avoided? */
#define M_VOID /* Xenix strikes again */
#endif
/* PRIVLIB:
* This symbol contains the name of the private library for this package.
* The library is private in the sense that it needn't be in anyone's
* execution path, but it should be accessible by the world. The program
* should be prepared to do ^ expansion.
*/
#define PRIVLIB "c:/bin/perl" /**/
/*
* BUGGY_MSC:
* This symbol is defined if you are the unfortunate owner of a buggy
* Microsoft C compiler and want to use intrinsic functions. Versions
* up to 5.1 are known conform to this definition.
*/
/*#define BUGGY_MSC /**/
/*
* BINARY:
* This symbol is defined if you run under an operating system that
* distinguishes between binary and text files. If so the function
* setmode will be used to set the file into binary mode.
*/
#define BINARY
#define S_ISUID 0
#define S_ISGID 0
#define CASTNEGFLOAT